Set focus-on-click to FALSE for all buttons. Don't grab focus when a
authorMatthias Clasen <mclasen@redhat.com>
Mon, 7 Nov 2005 20:10:04 +0000 (20:10 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 7 Nov 2005 20:10:04 +0000 (20:10 +0000)
2005-11-07  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtkpathbar.[hc]: Set focus-on-click to FALSE for all buttons.
Don't grab focus when a slider button is pressed, instead, use
a bit in the pathbar struct to determine whether to scroll up
or down.  (#314486, Carlos Garnacho)

ChangeLog
ChangeLog.pre-2-10
gtk/gtkpathbar.c
gtk/gtkpathbar.h

index 7b859bdd8510a3aee7fc63b3d1fe0ce4ca8d9087..ceb61e06801b4ec50c789f667c368f2212fe5c00 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkpathbar.[hc]: Set focus-on-click to FALSE for all buttons.
+       Don't grab focus when a slider button is pressed, instead, use
+       a bit in the pathbar struct to determine whether to scroll up
+       or down.  (#314486, Carlos Garnacho)
+
        * gtk/gtkentrycompletion.c (_gtk_entry_completion_popup): 
        Don't popup the completions if the focus has already been
        moved somewhere else.  (#319914, Christian Persch)
index 7b859bdd8510a3aee7fc63b3d1fe0ce4ca8d9087..ceb61e06801b4ec50c789f667c368f2212fe5c00 100644 (file)
@@ -1,5 +1,10 @@
 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkpathbar.[hc]: Set focus-on-click to FALSE for all buttons.
+       Don't grab focus when a slider button is pressed, instead, use
+       a bit in the pathbar struct to determine whether to scroll up
+       or down.  (#314486, Carlos Garnacho)
+
        * gtk/gtkentrycompletion.c (_gtk_entry_completion_popup): 
        Don't popup the completions if the focus has already been
        moved somewhere else.  (#319914, Christian Persch)
index cfaff6800009e84d297c4efade38bdf640579905..ade55d219752ae242a343d606845e240d3a4cf4e 100644 (file)
@@ -125,6 +125,7 @@ get_slider_button (GtkPathBar  *path_bar,
   gtk_widget_push_composite_child ();
 
   button = gtk_button_new ();
+  gtk_button_set_focus_on_click (button, FALSE);
   gtk_container_add (GTK_CONTAINER (button), gtk_arrow_new (arrow_type, GTK_SHADOW_OUT));
   gtk_container_add (GTK_CONTAINER (path_bar), button);
   gtk_widget_show_all (button);
@@ -730,9 +731,9 @@ gtk_path_bar_scroll_timeout (GtkPathBar *path_bar)
 
   if (path_bar->timer)
     {
-      if (GTK_WIDGET_HAS_FOCUS (path_bar->up_slider_button))
+      if (path_bar->scrolling_up)
        gtk_path_bar_scroll_up (path_bar->up_slider_button, path_bar);
-      else if (GTK_WIDGET_HAS_FOCUS (path_bar->down_slider_button))
+      else 
        gtk_path_bar_scroll_down (path_bar->down_slider_button, path_bar);
 
       if (path_bar->need_timer) 
@@ -770,18 +771,21 @@ gtk_path_bar_slider_button_press (GtkWidget      *widget,
                                  GdkEventButton *event,
                                  GtkPathBar     *path_bar)
 {
-  if (!GTK_WIDGET_HAS_FOCUS (widget))
-    gtk_widget_grab_focus (widget);
-
   if (event->type != GDK_BUTTON_PRESS || event->button != 1)
     return FALSE;
 
   path_bar->ignore_click = FALSE;
 
   if (widget == path_bar->up_slider_button)
-    gtk_path_bar_scroll_up (path_bar->up_slider_button, path_bar);
+    {
+      path_bar->scrolling_up = TRUE;
+      gtk_path_bar_scroll_up (path_bar->up_slider_button, path_bar);
+    }
   else if (widget == path_bar->down_slider_button)
-     gtk_path_bar_scroll_down (path_bar->down_slider_button, path_bar);
+    {
+      path_bar->scrolling_up = FALSE;
+      gtk_path_bar_scroll_down (path_bar->down_slider_button, path_bar);
+    }
 
   if (!path_bar->timer)
     {
@@ -1147,6 +1151,7 @@ make_directory_button (GtkPathBar  *path_bar,
 
   button_data->type = find_button_type (path_bar, path);
   button_data->button = gtk_toggle_button_new ();
+  gtk_button_set_focus_on_click (button_data->button, FALSE);
 
   switch (button_data->type)
     {
index f04146d5197919f05f2228b6734419f39f0ea408..349e1fcbd3081a008e56858286b38c3dac4b73e0 100644 (file)
@@ -63,6 +63,7 @@ struct _GtkPathBar
   guint slider_visible : 1;
   guint need_timer : 1;
   guint ignore_click : 1;
+  guint scrolling_up : 1;
 };
 
 struct _GtkPathBarClass